package com.cacho.s2b.lesson.grammar.func;

import com.cacho.s2b.lesson.vo.ApiTestInfo;

import java.text.ParseException;
import java.util.UUID;

/**
 * @Description 生成指定长度唯一的流水号
 * @Author LingWei
 * @date 2024/06/28
 **/

public class GrammarFuncUnique implements GrammarFunc {
    private static final int DEFAULT_RANDOM_LEN = 16;  // 设置一个默认长度 常量

    @Override
    // 只用到了 len，如果传了它并且长度小于UUID长度，否则用常量 DEFAULT_RANDOM_LEN
    public String getString(ApiTestInfo testInfo, String[] parts, int len) throws ParseException {
        String rtn = UUID.randomUUID().toString();  //36 长度
        len = len < 0 ? DEFAULT_RANDOM_LEN : len;
        // 如果参数len长度小于UUID长度
        if (len < rtn.length()) {
            rtn = rtn.substring(0, len);
        }
        return rtn;
    }
}